<?php
/**
 * [YIZHIKEJI System] Copyright (c) 2014 yz929.cn
 * YIZHIKEJI is NOT a free software, it under the license terms, visited http://www.yz929.cn/ for more details.
 */
defined('IN_IA') or exit('Access Denied');
$do = in_array($do, array('display', 'add', 'delete')) ? $do : 'display';
define('FRAME', 'weizhan');
$multi = pdo_fetch('SELECT * FROM ' . tablename('site_multi') . ' WHERE uid = :uid AND id = :id', array(':uid' => $_W['uid'], ':id' => $multiid));
if(empty($multi)){
    message('微站不存在或已删除', referer(), 'error');
}

$category = pdo_fetchall("SELECT id,parentid,name FROM ".tablename('site_category')." WHERE multiid = '{$multiid}' ORDER BY parentid ASC, displayorder ASC, id ASC ", array(), 'id');
$parent = array();
$children = array();

if (!empty($category)) {
    $children = '';
    foreach ($category as $cid => $cate) {
        if (!empty($cate['parentid'])) {
            $children[$cate['parentid']][] = $cate;
        } else {
            $parent[$cate['id']] = $cate;
        }
    }
}

if($do == 'display') {
    $pindex = max(1, intval($_GPC['page']));
    $psize = 20;
    $condition = '';
    $params = array();
    if (!empty($_GPC['keyword'])) {
        $condition .= " AND title LIKE :keyword";
        $params[':keyword'] = "%{$_GPC['keyword']}%";
    }

    if (!empty($_GPC['category']['childid'])) {
        $cid = intval($_GPC['category']['childid']);
        $condition .= " AND ccate = '{$cid}'";
    } elseif (!empty($_GPC['category']['parentid'])) {
        $cid = intval($_GPC['category']['parentid']);
        $condition .= " AND pcate = '{$cid}'";
    }

    $list = pdo_fetchall("SELECT * FROM ".tablename('site_article')." WHERE multiid = '{$multiid}' $condition ORDER BY displayorder DESC, id DESC LIMIT ".($pindex - 1) * $psize.','.$psize, $params);
    $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('site_article') . " WHERE multiid = '{$multiid}'");
    $pager = pagination($total, $pindex, $psize);
    template('weizhan/article');
} elseif($do == 'add') {
    load()->func('file');
    $id = intval($_GPC['id']);
    $template = uni_templates();
    $pcate = $_GPC['pcate'];
    $ccate = $_GPC['ccate'];
    if (!empty($id)) {
        $item = pdo_fetch("SELECT * FROM ".tablename('site_article')." WHERE id = :id" , array(':id' => $id));
        $item['type'] = explode(',', $item['type']);
        $pcate = $item['pcate'];
        $ccate = $item['ccate'];
        if (empty($item)) {
            message('抱歉，文章不存在或是已经删除！', '', 'error');
        }
        $key = pdo_fetchall('SELECT content FROM ' . tablename('rule_keyword') . ' WHERE rid = :rid AND multiid = :multiid', array(':rid' => $item['rid'], ':multiid' => $multiid));
        if(!empty($key)) {
            $keywords = array();
            foreach($key as $row) {
                $keywords[] = $row['content'];
            }
            $keywords = implode(',', array_values($keywords));
        }
        $item['credit'] = iunserializer($item['credit']) ? iunserializer($item['credit']) : array();
        if(!empty($item['credit']['limit'])) {
            $credit_num = pdo_fetchcolumn('SELECT SUM(credit_value) FROM ' . tablename('mc_handsel') . ' WHERE multiid = :multiid AND module = :module AND sign = :sign', array(':multiid' => $multiid, ':module' => 'article', ':sign' => md5(iserializer(array('id' => $id)))));
            if(is_null($credit_num)) $credit_num = 0;
            $credit_yu = (($item['credit']['limit'] - $credit_num) < 0) ? 0 : $item['credit']['limit'] - $credit_num;
        }
    } else {
        $item['credit'] = array();
    }
    if (checksubmit('submit')) {
        if (empty($_GPC['title'])) {
            message('标题不能为空，请输入标题！');
        }
        $data = array(
            'multiid' => $multiid,
            'iscommend' => intval($_GPC['option']['commend']),
            'ishot' => intval($_GPC['option']['hot']),
            'pcate' => intval($_GPC['category']['parentid']),
            'ccate' => intval($_GPC['category']['childid']),
            'template' => $_GPC['template'],
            'title' => $_GPC['title'],
            'description' => $_GPC['description'],
            'content' => htmlspecialchars_decode($_GPC['content'], ENT_QUOTES),
            'incontent' => intval($_GPC['incontent']),
            'source' => $_GPC['source'],
            'author' => $_GPC['author'],
            'displayorder' => intval($_GPC['displayorder']),
            'linkurl' => $_GPC['linkurl'],
            'createtime' => TIMESTAMP,
            'click' => intval($_GPC['click'])
        );
        if (!empty($_GPC['thumb'])) {
            $data['thumb'] = $_GPC['thumb'];
        } elseif (!empty($_GPC['autolitpic'])) {
            $match = array();
            preg_match('/attachment\/(.*?)(\.gif|\.jpg|\.png|\.bmp)/', $_GPC['content'], $match);
            if (!empty($match[1])) {
                $data['thumb'] = $match[1].$match[2];
            }
        } else {
            $data['thumb'] = '';
        }
        $keyword = str_replace('，', ',', trim($_GPC['keyword']));
        $keyword = explode(',', $keyword);
        if(!empty($keyword)) {
            $rule['multiid'] = $multiid;
            $rule['name'] = '文章：' . $_GPC['title'] . ' 触发规则';
            $rule['module'] = 'news';
            $rule['status'] = 1;
            $keywords = array();
            foreach($keyword as $key) {
                $key = trim($key);
                if(empty($key)) continue;
                $keywords[] = array(
                    'multiid' => $multiid,
                    'module' => 'news',
                    'content' => $key,
                    'status' => 1,
                    'type' => 1,
                    'displayorder' => 1,
                );
            }
            $reply['title'] = $_GPC['title'];
            $reply['description'] = $_GPC['description'];
            $reply['thumb'] = $_GPC['thumb'];
            $reply['url'] = murl('site/site/detail', array('id' => $id));
        }
        if(!empty($_GPC['credit']['status'])) {
            $credit['status'] = intval($_GPC['credit']['status']);
            $credit['limit'] = intval($_GPC['credit']['limit']) ? intval($_GPC['credit']['limit']) : message('请设置积分上限');
            $credit['share'] = intval($_GPC['credit']['share']) ? intval($_GPC['credit']['share']) : message('请设置分享时赠送积分多少');
            $credit['click'] = intval($_GPC['credit']['click']) ? intval($_GPC['credit']['click']) : message('请设置阅读时赠送积分多少');
            $data['credit'] = iserializer($credit);
        } else {
            $data['credit'] = iserializer(array('status' => 0, 'limit' => 0, 'share' => 0, 'click' => 0));
        }
        if (empty($id)) {
            if(!empty($keywords)) {
                pdo_insert('rule', $rule);
                $rid = pdo_insertid();
                foreach($keywords as $li) {
                    $li['rid'] = $rid;
                    pdo_insert('rule_keyword', $li);
                }
                $reply['rid'] = $rid;
                pdo_insert('news_reply', $reply);
                $data['rid'] = $rid;
            }
            pdo_insert('site_article', $data);
            $aid = pdo_insertid();
            pdo_update('news_reply', array('url' => murl('site/site/detail', array('id' => $aid))), array('rid' => $rid));
        } else {
            unset($data['createtime']);
            pdo_delete('rule', array('id' => $item['rid'], 'multiid' => $multiid));
            pdo_delete('rule_keyword', array('rid' => $item['rid'], 'multiid' => $multiid));
            pdo_delete('news_reply', array('rid' => $item['rid']));
            if(!empty($keywords)) {
                pdo_insert('rule', $rule);
                $rid = pdo_insertid();

                foreach($keywords as $li) {
                    $li['rid'] = $rid;
                    pdo_insert('rule_keyword', $li);
                }

                $reply['rid'] = $rid;
                pdo_insert('news_reply', $reply);
                $data['rid'] = $rid;
            } else {
                $data['rid'] = 0;
                $data['kid'] = 0;
            }
            pdo_update('site_article', $data, array('id' => $id));
        }
        message('文章更新成功！', url('weizhan/article/display'), 'success');
    } else {
        template('weizhan/article');
    }
} elseif($do == 'delete') {
    load()->func('file');
    $id = intval($_GPC['id']);
    $row = pdo_fetch("SELECT id,rid,kid,thumb FROM ".tablename('site_article')." WHERE id = :id", array(':id' => $id));
    if (empty($row)) {
        message('抱歉，文章不存在或是已经被删除！');
    }
    if (!empty($row['thumb'])) {
        file_delete($row['thumb']);
    }
    if(!empty($row['rid'])) {
        pdo_delete('rule', array('id' => $row['rid'], 'multiid' => $multiid));
        pdo_delete('rule_keyword', array('rid' => $row['rid'], 'multiid' => $multiid));
        pdo_delete('news_reply', array('rid' => $row['rid']));
    }
    pdo_delete('site_article', array('id' => $id));
    message('删除成功！', referer(), 'success');
}